import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

/*  
 中间件和拦截器它们都是Nest AOP思想的实现,都是在触发路由handler前后执行某些逻辑的周期函数。
 1.middleware 比interceptor 更先触发,并且还没通过守卫验证,所以更适合处理和具体业务不相关的通用逻辑。
 2.interceptor 是能从 ExecutionContext 里拿到目标 class 和 handler，
 进而通过 reflector 拿到它的 metadata 等信息的，这些 middleware 就不可以。 
*/

/* NestJS 拦截器（Interceptor），
它可以在请求管道中拦截传入请求并对其进行处理。
拦截器可以用于执行一些常见的任务，例如记录请求日志、验证请求有效性、加密/解密数据等。 */


/* NestJS 中间件（Middleware），
 中间件是各种HTTP行为的一个守护程序，它可同时处理多业务逻辑，如检查用户是否登录、检查访问次数等。
 中间件又叫做中间件，它可同时处理多业务逻辑，如检查用户是否登录、检查访问次数等。
*/


//全局interceptor请查看-> app.module.ts

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(3000);
}
bootstrap();
